在上一篇有跟大家提到可以自動讓程式幫你標0和1,
但是其實只要把圖片轉成灰階,要標成什麼文字符號都可以!
使用環境
程式碼
import cv2
ascii_char = list("01") # 可以自己改成想要標記的符號
WIDTH = 30 # 寬
HEIGHT = 30 # 高
def get_char(gray_value):
length = len(ascii_char) # 根據傳進來的灰階值判斷此位置要使用哪個字元
unit = 256.0 / length # 區分灰階範圍
return ascii_char[int(gray_value / unit)]
if __name__ == '__main__':
img = cv2.imread('圖片路徑', cv2.IMREAD_GRAYSCALE) # 將圖片自動轉為灰階圖片
img = cv2.resize(img, (WIDTH, HEIGHT)) # 將灰階圖縮小成指定大小
txt = ""
for i in range(HEIGHT):
for j in range(WIDTH):
txt += get_char(img[i][j]) # 轉為指定字符
txt += '\n'
print(txt)
成果發表會
把程式碼第二行部分改成
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'.")
就可以變成上面兩張圖的效果喔!
如果不更改程式碼的話就會變成上一篇只標好0和1那樣~
反正各有特色,看大家想用什麼~